package com.thb.pay.manage.web.sys;

import com.thb.pay.api.sys.vo.req.SysConfigPageReq;
import com.thb.pay.api.sys.vo.req.SysConfigReq;
import com.thb.pay.api.sys.vo.resp.SysConfigVo;
import com.thb.pay.core.annotation.OperationLog;
import com.thb.pay.core.utils.PageResult;
import com.thb.pay.core.utils.R;
import com.thb.pay.manage.comm.controller.BaseController;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("api/sys/config")
public class SysConfigController extends BaseController {

    /**
     * @param pageReq
     * @return
     * @方法名称
     * @功能描述 查询列表
     * @作者: lucky
     * @创建时间: 16:31 2019/10/11
     * @版本 v1.01
     **/
    @PostMapping("/list")
    public R list(@RequestBody SysConfigPageReq pageReq) {
        PageResult<SysConfigVo> pageResult = feginCommService.sysConfigServiceApi.findPage(pageReq);
        return R.okData(pageResult);
    }

    /**
     * @param id id
     * @return
     * @方法名称
     * @功能描述 查询
     * @作者: lucky
     * @创建时间: 16:31 2019/10/11
     * @版本 v1.01
     **/
    @RequestMapping("/get")
    public R get(@RequestParam("id") Long id) {
        SysConfigVo resultData = feginCommService.sysConfigServiceApi.getById(id);
        return R.okData(resultData);
    }

    /**
     * @param sysConfigReq
     * @return
     * @方法名称
     * @功能描述 新增
     * @作者: lucky
     * @创建时间: 16:31 2019/10/11
     * @版本 v1.01
     **/
    @PostMapping("/add")
    @OperationLog(value = "新增配置信息")
    public R add(@RequestBody SysConfigReq sysConfigReq) {
        feginCommService.sysConfigServiceApi.save(sysConfigReq);
        return R.ok();
    }

    /**
     * @param sysConfigReq
     * @return
     * @方法名称
     * @功能描述 修改配置信息
     * @作者: lucky
     * @创建时间: 16:31 2019/10/11
     * @版本 v1.01
     **/
    @PostMapping("/update")
    @OperationLog(value = "修改配置信息")
    public R update(@RequestBody SysConfigReq sysConfigReq) {
        if ("sett".equals(sysConfigReq.getType())) {
            // 将金额元转成分 , drawMaxDayAmount, maxDrawAmount, minDrawAmount, feeLevel,drawFeeLimit
            sysConfigReq.setValue(handleAmount(sysConfigReq.getValue()).toString());
        }
        feginCommService.sysConfigServiceApi.update(sysConfigReq);
        return R.ok();
    }


}